perm filename CLM.MSS[WHT,LSP] blob sn#754053 filedate 1984-05-13 generic text, type T, neo UTF8
@Make[CLM]
@Device[Dover]
@Comment{Root file for Common Lisp Manual.  (c) 1984 Guy L. Steele Jr.⎇
@Font(SpiceRoman10)
@Generate(FunList = "FUN")
@Generate(Windex = "WIN")
@Style(Spacing = 1.2 lines)
@Style(StringMax = 5000)
@Style(References = glsref)
@Use(Database "<4SCRATCH>")
@Use(Bibliography = "<4scratch>books.bib")
@Libraryfile[table]
@Libraryfile[sqrt]
@Libraryfile[vuttir]
@Modify(IndexEnv, leftmargin +0, indent +0)
@Modify(HD3, Above 0.3 inch, Below 0.15 inch)
@Modify(HD2, Below 0.25 inch)
@Modify[HD4, Above 0.3 inch, Below 0, Break Before]
@Modify(Tc1,Font TitleFont2,Above 0.3inch)
@Modify(Paragraph, 
	ContentsForm=" ", 
	TitleForm="@HD4[@Parm(Title)@Hsp(1 quad)]",
	Numbered [], Referenced [])
@Comment<
@Case(Draft, FullIndex {@String(IndexFuns "Yes")⎇,
	     Else {@String(IndexFuns "No")⎇)
>
@String(IndexFuns "Yes")

@textform(mline="@enter(liner,script +5pts)@tabclear()@&@ @\@leave(liner)")

@Define(Twocolumn, Columns 2, Columnmargin 1 cm, Spacing 12 pts, Boxed,
	Linewidth 3 in)

@Comment<
@form(SpiceTitlePage={
@begin(titlepage)
@begin(titlebox,centered, fixed .2 in)
@majorheading(CARNEGIE-MELLON UNIVERSITY)
@heading(DEPARTMENT@  OF@  COMPUTER@  SCIENCE)
@heading[SPICE@  PROJECT]
@begin(format, leftmargin +1.10inch, rightmargin +1.10inch)
@mline()
@begin(center, spacing 1)
@heading[@Parm(Title)]

@Parm(Author)

@Parm(Date,default="@value(date)")
@end(center)
@mline()
@end(format)
@end(titlebox)

@Begin(Center, Fixed 7.0in)
@Parm(cruft, default="")
@End(Center)

@Copyrightnotice(@Parm(Copyrightholder, default "Carnegie-Mellon University"))
@begin(researchcredit, indent 0)
@imbed( internal, 
def "This is an internal working document of the Computer Science
	Department, Carnegie-Mellon University, Schenley Park, Pittsburgh,
	PA 15213.  Some of the ideas expressed in this document may be
	only partially developed or erroneous.  Distribution of this document
	outside the immediate working community is discouraged; publication
	of this document is forbidden.")

Supported by the Defense Advanced Research Projects Agency, Department   
of Defense, ARPA Order 3597, monitored by the Air Force Avionics   
Laboratory under contract F33615-78-C-1551.  The views   
and conclusions contained in this document are those of the authors   
and should not be interpreted as representing the official policies,   
either expressed or implied, of the Defense Advanced Research   
Projects Agency or the U.S. Government.
@end(researchcredit)
@end(titlepage)

@String(ReportTitle = "@Parm(Title)")

@Pageheading()
@Pagefooting()

@Set(Page = 8)
@newpage

⎇) @comment[ End of SpiceTitlePage form ]

@Spicetitlepage[
Title = "Common Lisp Reference Manual",
Author = "Guy L. Steele Jr.
@c[carnegie-mellon university]
@c[tartan laboratories incorporated]
@blankspace[.5]
@i[with major contributions by]
@blankspace[.2]
Scott E. Fahlman
@c[carnegie-mellon university]
@blankspace[.2]
Richard P. Gabriel
@c[stanford university]
@c[lawrence livermore national laboratory]
@blankspace[.2]
David A. Moon
@c[symbolics, incorporated]
@blankspace[.2]
Daniel L. Weinreb
@c[symbolics, incorporated]",
CopyrightHolder = "Guy L. Steele Jr.",
Number = "S061",
Index = "PE Lisp & DS External",
Cruft = "@Begin(Heading)
Mary Poppins Edition
Practically Perfect in Every Way
@End(Heading)"
]
>



@begin(titlepage)
@begin(titlebox,centered, fixed .2 in)
@begin(format)
@begin(center, spacing 1)
@heading[Common Lisp Reference Manual]

Guy L. Steele Jr.
@c[carnegie-mellon university]
@c[tartan laboratories incorporated]
@blankspace[.5]
@i[with major contributions by]
@blankspace[.2]
Scott E. Fahlman
@c[carnegie-mellon university]
@blankspace[.2]
Richard P. Gabriel
@c[stanford university]
@c[lawrence livermore national laboratory]
@blankspace[.2]
David A. Moon
@c[symbolics, incorporated]
@blankspace[.2]
Daniel L. Weinreb
@c[symbolics, incorporated]
@end(center)
@end(format)
@end(titlebox)

@Copyrightnotice[Guy L. Steele Jr.]
@end[titlepage]

@String(ReportTitle = "Common Lisp Reference Manual")

@Pageheading()
@Pagefooting()

@Set(Page = 8)
@newpage


@Send(Contents "@String(ChapterTitle = 'Table of Contents')
  @Pageheading(Odd, Immediate, Left = <@c[@Value(ChapterTitle)]>, Right = <@Value(Page)>)
  @Pageheading(Even, Immediate, Left = <@Value(Page)>, Right = <@c[@Value(ReportTitle)]>)
  @Pagefooting(Center = <>)")

@Send(TableContents "@String(ChapterTitle = 'List of Tables')
  @Pageheading(Odd, Immediate, Left = <@c[@Value(ChapterTitle)]>, Right = <@Value(Page)>)
  @Pageheading(Even, Immediate, Left = <@Value(Page)>, Right = <@c[@Value(ReportTitle)]>)
  @Pagefooting(Center = <>)")

@Textform(MyChapter = "@Chapter@Parmquote(Text)
@String(ChapterTitle = @Parmquote(Text))
@Pageheading(Immediate, Left = <>, Right = <>)
@Pagefooting(Immediate, Center = <@minussign @Value(Page) @minussign>)
@Pageheading(Odd, Left = <@c[Chapter @Ref(Chapter): @Value(ChapterTitle)]>, Right = <@Value(Page)>)
@Pageheading(Even, Left = <@Value(Page)>, Right = <@c[@Value(ReportTitle)]>)
@Pagefooting(Center = <>)
")


@Pageheading(Odd, Left = <@c[Acknowledgements]>, Right = <@Value(Page)>)
@Pageheading(Even, Left = <@Value(Page)>, Right = <@c[@Value(ReportTitle)]>)
@Style(Pagenumber <@i>)

@Heading[Acknowledgements]

@clisp was designed
by a diverse group of people affiliated with many institutions.
Contributors to the
design and implementation of @clisp and to the polishing of this manual
are hereby gratefully acknowledged:
@Begin[Description, LeftMargin +10 picas, Indent -10 picas, Spread 0]
Paul Anagnostopoulos@\Digital Equipment Corporation
Dan Aronson@\Carnegie-Mellon University
Alan Bawden@\Massachusetts Institute of Technology
Eric Benson@\University of Utah, Stanford University, and Symbolics, Incorporated
Jon Bentley@\Carnegie-Mellon University and Bell Laboratories
Jerry Boetje@\Digital Equipment Corporation
Gary Brooks@\Texas Instruments
Rodney A. Brooks@\Stanford University
Gary L. Brown@\Digital Equipment Corporation
Richard L. Bryan@\Symbolics, Incorporated
Glenn S. Burke@\Massachusetts Institute of Technology
Howard I. Cannon@\Symbolics, Incorporated
George J. Carrette@\Massachusetts Institute of Technology
Robert Cassels@\Symbolics, Incorporated
Monica Cellio@\Carnegie-Mellon University
David Dill@\Carnegie-Mellon University
Scott E. Fahlman@\Carnegie-Mellon University
Richard J. Fateman@\University of California, Berkeley
Neal Feinberg@\Carnegie-Mellon University
Ron Fischer@\Rutgers University
John Foderaro@\University of California, Berkeley
Steve Ford@\Texas Instruments
Richard P. Gabriel@\Stanford University and Lawrence Livermore National Laboratory
Joseph Ginder@\Carnegie-Mellon University and Perq Systems Corp.
Bernard S. Greenberg@\Symbolics, Incorporated
Richard Greenblatt@\Lisp Machines Incorporated (LMI)
Martin L. Griss@\University of Utah and Hewlett-Packard Incorporated
Steven Handerson@\Carnegie-Mellon University
Charles L. Hedrick@\Rutgers University
Gail Kaiser@\Carnegie-Mellon University
Earl A. Killian@\Lawrence Livermore National Laboratory
Steve Krueger@\Texas Instruments
John L. Kulp@\Symbolics, Incorporated
Jim Large@\Carnegie-Mellon University
Rob Maclachlan@\Carnegie-Mellon University
William Maddox@\Carnegie-Mellon University
Larry M. Masinter@\Xerox Corporation, Palo Alto Research Center
John McCarthy@\Stanford University
Michael E. McMahon@\Symbolics, Incorporated
Brian Milnes@\Carnegie-Mellon University
David A. Moon@\Symbolics, Incorporated
Beryl Morrison@\Digital Equipment Corporation
Don Morrison@\University of Utah
Dan Pierson@\Digital Equipment Corporation
Kent M. Pitman@\Massachusetts Institute of Technology
Jonathan Rees@\Yale University
Walter van Roggen@\Digital Equipment Corporation
Susan Rosenbaum@\Texas Instruments
William L. Scherlis@\Carnegie-Mellon University
Lee Schumacher@\Carnegie-Mellon University
Richard M. Stallman@\Massachusetts Institute of Technology
Barbara K. Steele@\Carnegie-Mellon University
Guy L. Steele Jr.@\Carnegie-Mellon University and Tartan Laboratories Incorporated
Peter Szolovits@\Massachusetts Institute of Technology
William vanMelle@\Xerox Corporation, Palo Alto Research Center
Ellen Waldrum@\Texas Instruments
Allan C. Wechsler@\Symbolics, Incorporated
Daniel L. Weinreb@\Symbolics, Incorporated
Jon L White@\Xerox Corporation, Palo Alto Research Center
Skef Wholey@\Carnegie-Mellon University
Richard Zippel@\Massachusetts Institute of Technology
Leonard Zubkoff@\Carnegie-Mellon University and Tartan Laboratories Incorporated
@End[Description]
Some contributions were relatively small; others involved enormous
expenditures of effort and great dedication.  A few of the contributors
served more as worthy adversaries than as benefactors (and do not
necessarily endorse the final design reported here),
but their pointed criticisms were just as important to the polishing of @clisp
as all the positively phrased suggestions.
All of the people named above were helpful in one way or another,
and I am grateful for the interest and spirit of cooperation
that allowed most decisions to be made by consensus after due discussion.

Considerable encouragement and moral support were also provided by:
@Begin[Description, LeftMargin +10 picas, Indent -10 picas, Spread 0]
Norma Abel@\Digital Equipment Corporation
Roger Bate@\Texas Instruments
Harvey Cragon@\Texas Instruments
Dennis Duncan@\Digital Equipment Corporation
Sam Fuller@\Digital Equipment Corporation
Gene Kromer@\Texas Instruments
A. Nico Habermann@\Carnegie-Mellon University
Berthold K. P. Horn@\Massachusetts Institute of Technology
Gene Matthews@\Texas Instruments
Allan Newell@\Carnegie-Mellon University
Harry Tennant@\Texas Instruments
Dana Scott@\Carnegie-Mellon University
Patrick H. Winston@\Massachusetts Institute of Technology
William A. Wulf@\Carnegie-Mellon University and Tartan Laboratories Incorporated
Lowell Wood@\Lawrence Livermore National Laboratory
@End[Description]
I am very grateful to each of them.

Jan Zubkoff of Carnegie-Mellon University
provided a great deal of organization,
secretarial support, and unfailing good cheer in the face of adversity.

The development of @clisp would most probably not have been possible
without the electronic message system provided by the @c[arpanet].
Design decisions were made on several hundred distinct points, for the
most part by consensus, and by simple majority vote when necessary.
Except for two one-day face-to-face meetings, all of the language design
and discussion was done through the @c[arpanet] message system, which
permitted effortless dissemination of messages to dozens of people, and
several interchanges per day.  The message system also provided
automatic archiving of the entire discussion, which has proved
invaluable in the preparation of this reference manual.  Over the course
of thirty months, approximately 3000 messages were sent (an average of
three per day), ranging in length from one line to twenty pages.
Assuming 5000 characters per printed page of text, the entire
discussion totaled about 1100 pages.  It would have been substantially
more difficult to have conducted this discussion by any other means,
and would have required much more time.

The ideas in @clisp have come from many sources and been polished by
much discussion.  I am responsible for the form of this
manual, and for any errors or inconsistencies that may remain;
but the credit for the design and support of @clisp lies with
the individuals named above, each of whom has made significant
contributions.

The organization and content
of this manual were inspired in large part by the
@i[MacLISP Reference Manual] by David A. Moon and others @Cite[MOONUAL],
and by the @i[LISP Machine Manual] (fourth edition)
by Daniel Weinreb and David Moon @Cite[BLUE-LISPM],
which in turn acknowledges the efforts of Richard Stallman, Mike McMahon,
Alan Bawden, Glenn Burke, and ``many people too numerous to list.''

I thank Phyllis Keenan, Chase Duffy,
Virginia Anderson,
John Osborn,
and Jonathan Baker of Digital Press for their
help in preparing this book for publication.
Jane Blake did an admirable job of copy-editing.
James Gibson and Katherine Downs of Waldman Graphics were most
helpful and cooperative
in typesetting this book from my on-line manuscript files.

I am grateful to Carnegie-Mellon University and to
Tartan Laboratories Incorporated for supporting me in the writing
of this manual over the last three years.

Part of the work on this book was
done in conjunction with the Carnegie-Mellon University Spice Project,
an effort to construct an advanced scientific software development
environment for personal computers.
The Spice Project is
supported by the Defense Advanced Research Projects Agency, Department   
of Defense, ARPA Order 3597, monitored by the Air Force Avionics   
Laboratory under contract F33615-78-C-1551.  The views   
and conclusions contained in this book are those of the author
and should not be interpreted as representing the official policies,   
either expressed or implied, of the Defense Advanced Research   
Projects Agency or the U.S. Government.

Most of the writing of this book took place between
midnight and 5 @c[A.M.]  I am grateful to Barbara, Julia, and Peter
for putting up with it, and for their love.

@Begin[Format]
Guy L. Steele Jr.
Pittsburgh, Pennsylvania
March 1984
@End[Format]

@newpage

@blankspace[3 in]
@Begin[Quotation, leftmargin +1.1in, rightmargin +1.1in]
Would it be wonderful if, under the pressure of all these difficulties,
the Convention should have been forced into some deviations from that
artificial structure and regular symmetry which an abstract view of the
subject might lead an ingenious theorist to bestow on a constitution
planned in his closet or in his imagination?
@Begin[Format]
@tabset(+4.3in)
@>@minussign@;@i[James Madison, The Federalist No. 37, January 11, 1788]@\
@End[Format]
@End[Quotation]

@newpage
@comment{yes, two newpages⎇
@newpage
@Set(Page = 1)
@Style(Pagenumber <@1>)

@Tabclear
@Include(intro)		@Comment{General info, notational conventions⎇
@Include(dtypes)	@Comment{Enumeration of data types⎇
@Include(scope)		@Comment{Discussion of scoping rules⎇
@Include(dtspec)	@Comment{Data type specifiers⎇
@Include(progs)		@Comment{Representation of programs, simple DEFUN⎇
@Include(preds)		@Comment{Primarily type discrimination predicates⎇
@Include(contrl)	@Comment{Flow of control, environment handling⎇
@Include(macro)		@Comment{Macros⎇
@Include(declar)	@Comment{Declarations⎇
@Include(symbol)	@Comment{Functions on symbols⎇
@Include(xpack)		@Comment{Packages⎇
@Include(number)	@Comment{Functions on numbers⎇
@Include(char)		@Comment{Functions on characters⎇
@Include(kseque)	@Comment{Functions on sequences (keyword style)⎇
@Include(list)		@Comment{Functions on lists⎇
@Include(hash)		@Comment{Hash tables⎇
@Include(array)		@Comment{Hairy array stuff⎇
@Include(string)	@Comment{Functions on strings⎇
@Include(struct)	@Comment{Structure package⎇
@Include(eval)		@Comment{Includes stack-crawling stuff⎇
@Include(stream)	@Comment{Stream functions⎇
@Include(io)		@Comment{Input/output functions⎇
@Include(files)		@Comment{File system interface⎇
@Include(xerror)	@Comment{Errors and the debugger⎇
@Include(misc)		@Comment{Miscellaneous stuff⎇

@Indexheadings[References]
@bibliography

@IndexCleanup()